/* 打包时间：2025-11-29 21:10:27 */
(function(){
  try{
    var bridge = null;
    try{ bridge = runtime && runtime.accessibilityBridge; }catch(e){}
    if(!bridge){
      try{
        var m = runtime.getClass().getDeclaredMethod("getAccessibilityBridge");
        m.setAccessible(true);
        bridge = m.invoke(runtime);
      }catch(e){}
    }
    if(!bridge){ return; }
    try{
      var WF = Packages.com.stardust.autojs.core.accessibility.AccessibilityBridge$WindowFilter;
      bridge.setWindowFilter(new JavaAdapter(WF,{ filter:function(info){ return true; } }));
    }catch(e){}
  }catch(e){}
})();
module['exports'] = function (_0x5a5ad1) {
    var _0x4e9570 = {};
    function _0x2ccf8b(_0x41f975) {
        if (_0x4e9570[_0x41f975])
            return _0x4e9570[_0x41f975]['exports'];
        var _0x49a991 = _0x4e9570[_0x41f975] = {
            'i': _0x41f975,
            'l': ![],
            'exports': {}
        };
        return _0x5a5ad1[_0x41f975]['call'](_0x49a991['exports'], _0x49a991, _0x49a991['exports'], _0x2ccf8b), _0x49a991['l'] = !![], _0x49a991['exports'];
    }
    return _0x2ccf8b['m'] = _0x5a5ad1, _0x2ccf8b['c'] = _0x4e9570, _0x2ccf8b['d'] = function (_0x3e6689, _0x16ea60, _0x55bdc2) {
        !_0x2ccf8b['o'](_0x3e6689, _0x16ea60) && Object['defineProperty'](_0x3e6689, _0x16ea60, {
            'enumerable': !![],
            'get': _0x55bdc2
        });
    }, _0x2ccf8b['r'] = function (_0x41c933) {
        typeof Symbol !== 'undefined' && Symbol['toStringTag'] && Object['defineProperty'](_0x41c933, Symbol['toStringTag'], { 'value': 'Module' }), Object['defineProperty'](_0x41c933, '__esModule', { 'value': !![] });
    }, _0x2ccf8b['t'] = function (_0x59b3b3, _0x2328b7) {
        if (_0x2328b7 & 0x1)
            _0x59b3b3 = _0x2ccf8b(_0x59b3b3);
        if (_0x2328b7 & 0x8)
            return _0x59b3b3;
        if (_0x2328b7 & 0x4 && typeof _0x59b3b3 === 'object' && _0x59b3b3 && _0x59b3b3['__esModule'])
            return _0x59b3b3;
        var _0x5b4431 = Object['create'](null);
        _0x2ccf8b['r'](_0x5b4431), Object['defineProperty'](_0x5b4431, 'default', {
            'enumerable': !![],
            'value': _0x59b3b3
        });
        if (_0x2328b7 & 0x2 && typeof _0x59b3b3 != 'string') {
            for (var _0x5c2a94 in _0x59b3b3)
                _0x2ccf8b['d'](_0x5b4431, _0x5c2a94, function (_0x248e47) {
                    return _0x59b3b3[_0x248e47];
                }['bind'](null, _0x5c2a94));
        }
        return _0x5b4431;
    }, _0x2ccf8b['n'] = function (_0x4e28de) {
        var _0xf727a4 = _0x4e28de && _0x4e28de['__esModule'] ? function _0x3084c1() {
            return _0x4e28de['default'];
        } : function _0x1a3ff9() {
            return _0x4e28de;
        };
        return _0x2ccf8b['d'](_0xf727a4, 'a', _0xf727a4), _0xf727a4;
    }, _0x2ccf8b['o'] = function (_0x299f60, _0x4f7878) {
        return Object['prototype']['hasOwnProperty']['call'](_0x299f60, _0x4f7878);
    }, _0x2ccf8b['p'] = '', _0x2ccf8b(_0x2ccf8b['s'] = 0x16);
}({
    0x0: function (_0x93aa78, _0x3ed367) {
        _0x93aa78['exports'] = require('./lib.js');
    },
    0x16: function (_0x5099d5, _0x1a1a42, _0x282a3e) {
        var _0x1bf0c0 = {};
        _0x5099d5['exports'] = _0x1bf0c0;
        var {randomWait: _0x311f8f} = _0x282a3e(0x0);
        const _0x2d76a0 = _0x282a3e(0x4);
        let _0x9c7776 = null;
        _0x1bf0c0['Global'] = { 'ContactList': [] };
        try {
            importClass(android['content']['ContentValues']), importClass(android['content']['ContentUris']), importClass(android['provider']['ContactsContract']);
        } catch (_0x31762b) {
            console['info']('[contacts|L17]', '引入importClass时,出错:', _0x31762b);
        }
        let _0x5c1231 = ![];
        try {
            runtime['requestPermissions']([
                'read_contacts',
                'write_contacts'
            ]), _0x5c1231 = !![];
        } catch (_0x54f37d) {
            console['error']('[contacts|L24]', _0x54f37d + '\x0a请确保已给予相应权限!');
        }
        const _0x1b9bbc = _0x5c1231;
        _0x1bf0c0['导入通讯录'] = function (_0x3145f6, _0x418ff6, _0x17047f, _0x2c57b0) {
            if (!_0x1b9bbc)
                return;
            toastLog('开始导入联系人');
            let _0x3cab51 = 'GBK', _0x1b9e29 = this, _0x4e770b = _0x1b9e29['readContactsFile'](_0x2c57b0, _0x3cab51, _0x3145f6);
            for (let _0x24a95f = 0x0; _0x24a95f < _0x4e770b['length']; _0x24a95f++) {
                if (!_0x1b9e29['vertifyContact'](_0x4e770b[_0x24a95f]))
                    console['warn']('[contacts|L38]', '第%d行:\x20联系人格式错误！', _0x24a95f + 0x1);
                else
                    try {
                        _0x1b9e29['insertOrUpdateContact'](_0x4e770b[_0x24a95f]);
                    } catch (_0x2a9f1b) {
                        console['log']('[contacts|L43]', '执行insertOrUpdateContact,出错:', _0x2a9f1b);
                    }
                _0x311f8f(_0x418ff6, _0x17047f), _0x311f8f(0x12c, 0x1c2), toast('正在导入联系人' + _0x4e770b[_0x24a95f]['number']), _0x24a95f % 0x64 === 0x0 && (toast('第' + (_0x24a95f + 0x1) + '个,进度' + ((_0x24a95f + 0x1) / _0x4e770b['length'] * 0x64)['toFixed'](0x2) + '%'), _0x311f8f(0x898, 0x960));
            }
            try {
                let _0x1623af = _0x2c57b0['split']('/');
                _0x1623af[_0x1623af['length'] - 0x1] = _0x1623af[_0x1623af['length'] - 0x1]['replace']('.csv', '-已导入.csv');
                let _0x325392 = _0x1623af['join']('/');
                _0x1b9e29['addContactsRecords'](_0x325392, _0x3cab51, _0x4e770b);
            } catch (_0x10b301) {
                console['warn']('[contacts|L60]', 'contacts.导入通讯录:', _0x10b301);
            }
            toastLog('导入通讯录完成,共：' + _0x3145f6 + '个');
        }, _0x1bf0c0['删除通讯录'] = function (_0x51ff65, _0x3cf687, _0xb38135, _0x6aad43) {
            if (!_0x1b9bbc)
                return;
            toastLog('开始删除通讯录');
            let _0x3854f5 = 'GBK', _0x231776 = this, _0x275ebf = _0x231776['readContactsFile'](_0x6aad43, _0x3854f5, _0x51ff65);
            for (let _0x35b5ca = 0x0; _0x35b5ca < _0x275ebf['length']; _0x35b5ca++) {
                if (!_0x231776['vertifyContact'](_0x275ebf[_0x35b5ca]))
                    console['warn']('[contacts|L116]', '第%d行:\x20联系人格式错误！', _0x35b5ca + 0x1);
                else
                    try {
                        _0x231776['deleteContact'](_0x275ebf[_0x35b5ca]);
                    } catch (_0x3dd6c2) {
                        console['log']('[contacts|L121]', '执行deleteContact出错:', _0x3dd6c2);
                    }
                _0x311f8f(0x12c, 0x190), _0x35b5ca % 0x64 == 0x0 && toast('第' + (_0x35b5ca + 0x1) + '个,进度' + ((_0x35b5ca + 0x1) / _0x275ebf['length'] * 0x64)['toFixed'](0x2) + '%');
            }
            toastLog('删除通讯录完成,共：' + _0x51ff65 + '个');
        }, _0x1bf0c0['getProvinces'] = function (_0x5c14d3) {
            let _0x11756a = { 'carrier': _0x5c14d3 }, _0x347c8a = [];
            for (let _0x5b1fcf in _0x11756a) {
                _0x347c8a['push'](_0x5b1fcf + '=' + _0x11756a[_0x5b1fcf]);
            }
            let _0x4bba39 = 'http://39.98.69.102:51666/api/phone-segment/provinces?' + _0x347c8a['join']('&'), _0x43e4c8 = { 'headers': _0x2d76a0['KEYCODE']['getHeaders']() }, _0x58a64f = http['get'](_0x4bba39, _0x43e4c8), _0x15eedc = _0x58a64f['statusCode'], _0x349f80 = JSON['parse'](_0x58a64f['body']['string']()), _0x3d6d81 = [];
            if (_0x15eedc == 0xc8)
                for (var _0x205f32 in _0x349f80) {
                    _0x3d6d81['push'](_0x349f80[_0x205f32]);
                }
            else
                toastLog('[提示]' + _0x349f80['msg']);
            return _0x3d6d81;
        }, _0x1bf0c0['getCities'] = function (_0x4920d0, _0x43e8fb) {
            let _0x2f56a0 = {
                    'carrier': _0x4920d0,
                    'province': _0x43e8fb
                }, _0x4b9f12 = [];
            for (let _0x1c13ad in _0x2f56a0) {
                _0x4b9f12['push'](_0x1c13ad + '=' + _0x2f56a0[_0x1c13ad]);
            }
            let _0x299916 = 'http://39.98.69.102:51666/api/phone-segment/cities?' + _0x4b9f12['join']('&'), _0x45f7f1 = { 'headers': _0x2d76a0['KEYCODE']['getHeaders']() }, _0x23f9ef = http['get'](_0x299916, _0x45f7f1), _0x56b86a = _0x23f9ef['statusCode'], _0x27a91a = JSON['parse'](_0x23f9ef['body']['string']()), _0x10e150 = [];
            if (_0x56b86a == 0xc8)
                for (var _0x2f034c in _0x27a91a) {
                    _0x10e150['push'](_0x27a91a[_0x2f034c]);
                }
            else
                toastLog('[提示]' + _0x27a91a['msg']);
            return _0x10e150;
        }, _0x1bf0c0['getSegments'] = function (_0x4eaadc, _0x1e00a6, _0x4af8c8) {
            let _0x25a6fe = {
                    'carrier': _0x4eaadc,
                    'province': _0x1e00a6,
                    'city': _0x4af8c8
                }, _0x1c036f = [];
            for (let _0x3f60ea in _0x25a6fe) {
                _0x1c036f['push'](_0x3f60ea + '=' + _0x25a6fe[_0x3f60ea]);
            }
            let _0x68d146 = 'http://39.98.69.102:51666/api/phone-segment?' + _0x1c036f['join']('&'), _0x45f17a = { 'headers': _0x2d76a0['KEYCODE']['getHeaders']() }, _0xbe57f3 = http['get'](_0x68d146, _0x45f17a), _0x54fa3d = _0xbe57f3['statusCode'], _0x5fb715 = JSON['parse'](_0xbe57f3['body']['string']()), _0x4ad6d2 = [];
            if (_0x54fa3d == 0xc8)
                for (var _0x338fc3 in _0x5fb715) {
                    _0x4ad6d2['push'](_0x5fb715[_0x338fc3]['fullNumSegment']);
                }
            else
                toastLog('[提示]' + _0x5fb715['msg']);
            return _0x4ad6d2;
        }, _0x1bf0c0['getNetworkNums'] = function (_0x3ac94c, _0x520086, _0x1dc7bc) {
            let _0x4f1734 = {
                    'carrier': _0x3ac94c,
                    'province': _0x520086,
                    'city': _0x1dc7bc
                }, _0x5afe05 = [];
            for (let _0x492e84 in _0x4f1734) {
                _0x5afe05['push'](_0x492e84 + '=' + _0x4f1734[_0x492e84]);
            }
            let _0x4b2d81 = 'http://39.98.69.102:51666/api/phone-segment?' + _0x5afe05['join']('&'), _0x26a921 = { 'headers': _0x2d76a0['KEYCODE']['getHeaders']() }, _0x4518e0 = http['get'](_0x4b2d81, _0x26a921), _0x251eaf = _0x4518e0['statusCode'], _0x25a17e = JSON['parse'](_0x4518e0['body']['string']()), _0x1a796d = {}, _0x22229f = [];
            if (_0x251eaf == 0xc8)
                for (let _0x571203 in _0x25a17e) {
                    let _0x26100f = _0x25a17e[_0x571203]['networkNum'];
                    !_0x1a796d[_0x26100f] && (_0x1a796d[_0x26100f] = 0x1, _0x22229f['push'](_0x26100f));
                }
            else
                toastLog('[提示]' + _0x25a17e['msg']);
            return _0x22229f;
        }, _0x1bf0c0['getPhonePattern'] = function (_0x4a3ff7) {
            let _0x18dd2a = [], _0x517560 = [], _0xe77a6b = 'http://39.98.69.102:51666/api/special-phone-num-pattern', _0x446e0c = { 'headers': _0x2d76a0['KEYCODE']['getHeaders']() }, _0x1766ab = http['get'](_0xe77a6b, _0x446e0c), _0x6b18c9 = _0x1766ab['statusCode'];
            console['verbose']('code\x20=\x20' + _0x6b18c9);
            let _0x2152e3 = JSON['parse'](_0x1766ab['body']['string']());
            if (_0x6b18c9 == 0xc8)
                for (let _0x15e9a9 in _0x2152e3) {
                    let _0x2bf47d = _0x2152e3[_0x15e9a9];
                    _0x18dd2a['push'](_0x2bf47d['pattern']), _0x517560['push'](_0x2bf47d['name']);
                }
            else
                toastLog('[提示]' + _0x2152e3['msg']);
            console['log']('[contacts|L279]', '规则条数:' + _0x18dd2a['length']);
            let _0x84b74c = _0x4a3ff7 === 'pattern' ? _0x18dd2a : _0x517560;
            return _0x84b74c;
        }, _0x1bf0c0['getAreaNums'] = function (_0x3591a9, _0x5464cd, _0x2db1d7, _0x5460ef) {
            let _0x2c517f = {
                    'carrier': _0x3591a9,
                    'province': _0x5464cd,
                    'city': _0x2db1d7
                }, _0x4af377 = [];
            for (let _0x1e352c in _0x2c517f) {
                _0x4af377['push'](_0x1e352c + '=' + _0x2c517f[_0x1e352c]);
            }
            let _0x1cea1c = 'http://39.98.69.102:51666/api/phone-segment?' + _0x4af377['join']('&'), _0x4ff6dc = { 'headers': _0x2d76a0['KEYCODE']['getHeaders']() }, _0x180b3f = http['get'](_0x1cea1c, _0x4ff6dc), _0xd5d3a = _0x180b3f['statusCode'];
            console['verbose']('code\x20=\x20' + _0xd5d3a);
            let _0x584d8a = JSON['parse'](_0x180b3f['body']['string']()), _0x1e5515 = [];
            if (_0xd5d3a == 0xc8)
                for (let _0x3e632b in _0x584d8a) {
                    let _0x307294 = _0x584d8a[_0x3e632b];
                    _0x5460ef == _0x307294['networkNum'] && _0x1e5515['push'](_0x307294['areaNum']);
                }
            else
                toastLog('[提示]' + _0x584d8a['msg']);
            return _0x1e5515;
        }, _0x1bf0c0['生成号码库'] = function (_0x2daa7c, _0x5d2848) {
            let _0xacc375 = _0x2daa7c['carrier'], _0xdf464e = _0x2daa7c['province'], _0x572418 = _0x2daa7c['city'], _0x4cbef9 = _0x2daa7c['networkNum'], _0x3d1b24 = [
                    _0xacc375,
                    _0xdf464e,
                    _0x572418,
                    _0x4cbef9
                ], _0x5972ae = _0x2daa7c['useLastNumPhone'], _0x2092b2 = [];
            if (_0x5972ae) {
                let _0x3bd222 = _0x2daa7c['lastNumPhone'];
                _0x2092b2 = _0x3bd222 ? _0x3bd222['split'](',') : [];
            }
            let _0xfca569 = _0x2daa7c['usePhonePattern'], _0x4159c9 = _0x2daa7c['phonePattern'];
            _0x4159c9['length'] === 0x0 ? (console['verbose']('本地未获取正则表达式数据'), _0x4159c9 = _0x1bf0c0['getPhonePattern']('pattern')) : console['verbose']('本地已获取正则表达式数据');
            let _0x224a73 = _0x2daa7c['areaNumPhone'], _0x4c2622 = _0x224a73 ? _0x224a73['split'](',') : [];
            if (!_0xdf464e || !_0x572418) {
                alert('请设置好地区参数'), console['error']('[contacts|L351]', '请设置好地区参数');
                return;
            } else {
                if (!_0xacc375 || !_0x4cbef9) {
                    alert('请设置好号码参数'), console['error']('[contacts|L355]', '请设置好号码参数');
                    return;
                } else {
                    if (_0x4c2622['length'] == 0x0) {
                        alert('请设置好地区编码参数'), console['error']('[contacts|L359]', '请设置好地区编码参数');
                        return;
                    }
                }
            }
            _0x1bf0c0['createPhoneFile'](_0x3d1b24, _0x4cbef9, _0x4c2622, _0x5d2848, _0xfca569, _0x4159c9, _0x2092b2), console['info']('[contacts|L363]', '所有号码库生成完毕~\x0a请移步一键导入功能\x0a选择相应号码库文件导入通讯录吧!');
        }, _0x1bf0c0['createPhoneFile'] = function (_0x5e5e78, _0x261eb3, _0x52cd92, _0x46b5cf, _0x123151, _0x146c7f, _0x1adb80) {
            var _0x2a5896 = function (_0x4ce522, _0x206e53) {
                    let _0xc8e85f = ![];
                    for (let _0x2f5e68 = 0x0; _0x2f5e68 < _0x206e53['length']; _0x2f5e68++) {
                        let _0x5bf5ca = new RegExp(_0x206e53[_0x2f5e68]);
                        if (_0x5bf5ca['test'](_0x4ce522)) {
                            _0xc8e85f = !![];
                            break;
                        }
                    }
                    return _0xc8e85f;
                }, _0x397595 = function (_0x1938c2, _0x2f1ce4) {
                    if (_0x2f1ce4['length'] == 0x0)
                        return !![];
                    let _0x25ec05 = String(_0x1938c2)['split']('')['reverse']()[0x0];
                    return _0x2f1ce4['indexOf'](_0x25ec05) == -0x1 ? ![] : !![];
                }, _0x4f7c7c = function (_0x1b31f7, _0x3eee68) {
                    let _0x1c3446 = files['exists'](_0x1b31f7) && files['isFile'](_0x1b31f7) ? 'a' : 'w', _0x452983 = open(_0x1b31f7, _0x1c3446, 'gbk');
                    for (let _0x5fcbb1 = 0x0; _0x5fcbb1 < _0x3eee68['length']; _0x5fcbb1++) {
                        _0x452983['writeline'](_0x3eee68[_0x5fcbb1]);
                    }
                    _0x452983['close']();
                };
            _0x9c7776 = _0x9c7776 || _0x282a3e(0x9);
            for (let _0xfd5146 = 0x0; _0xfd5146 < _0x52cd92['length']; _0xfd5146++) {
                let _0x364a80 = _0x52cd92[_0xfd5146], _0xd6034b = _0x5e5e78['join']('_') + '_' + _0x364a80 + '.csv';
                toastLog('开始生成号码库:' + _0xd6034b);
                let _0x1228bf = files['join'](_0x46b5cf, _0xd6034b);
                files['exists'](_0x1228bf) && files['isFile'](_0x1228bf) && files['remove'](_0x1228bf);
                let _0xddd00c = 0x0, _0x3199d7 = _0x261eb3 + _0x364a80, _0x5565cf = [];
                while (_0xddd00c < 0x2710) {
                    let _0x1b600d;
                    if (_0xddd00c < 0xa)
                        _0x1b600d = '000' + _0xddd00c;
                    else {
                        if (_0xddd00c < 0x64)
                            _0x1b600d = '00' + _0xddd00c;
                        else
                            _0xddd00c < 0x3e8 ? _0x1b600d = '0' + _0xddd00c : _0x1b600d = String(_0xddd00c);
                    }
                    _0xddd00c++;
                    if (!_0x397595(_0x1b600d, _0x1adb80))
                        continue;
                    let _0x37c79b = _0x3199d7 + _0x1b600d;
                    if (!_0x123151 || _0x2a5896(_0x37c79b, _0x146c7f)) {
                        let _0x209e3c = [
                            _0x37c79b,
                            _0x9c7776['getFamily'](),
                            _0x9c7776['getName']()
                        ]['join'](',');
                        _0x5565cf['push'](_0x209e3c);
                    }
                    _0x5565cf['length'] >= 0x9c4 && (toast('号码库生成中...'), _0x4f7c7c(_0x1228bf, _0x5565cf), _0x311f8f(0x9c4, 0xa28), _0x5565cf = []);
                }
                _0x4f7c7c(_0x1228bf, _0x5565cf), _0x5565cf = null, toastLog('生成成功,路径:' + _0x1228bf), _0x311f8f(0x8fc, 0x960);
            }
        }, _0x1bf0c0['vertifyContact'] = function (_0x4c1eca) {
            return _0x4c1eca['name'] && _0x4c1eca['number'] && _0x4c1eca['city'];
        }, _0x1bf0c0['addContactsRecords'] = function (_0x3a96f1, _0x5b786a, _0x21bd31) {
            (!files['exists'](_0x3a96f1) || !files['isFile'](_0x3a96f1)) && files['create'](_0x3a96f1);
            let _0x5f17d0 = 'a', _0x195fc3 = open(_0x3a96f1, _0x5f17d0, _0x5b786a), _0x1bd9f1 = [], _0x46edc6, _0x4c65c1;
            for (let _0x485694 = 0x0; _0x485694 < _0x21bd31['length']; _0x485694++) {
                _0x46edc6 = _0x21bd31[_0x485694], _0x4c65c1 = [
                    _0x46edc6['number'],
                    _0x46edc6['city'],
                    _0x46edc6['name']
                ]['join'](','), _0x1bd9f1['push'](_0x4c65c1);
            }
            _0x195fc3['writelines'](_0x1bd9f1), _0x195fc3['close']();
        }, _0x1bf0c0['readContactsFile'] = function (_0x2f3991, _0x33fb4f, _0xd25608) {
            _0x33fb4f = _0x33fb4f == null ? _0x33fb4f : 'GBK', _0xd25608 = _0xd25608 == null ? 0xa : parseInt(_0xd25608, 0xa);
            let _0x4922dc = [];
            if (!files['exists'](_0x2f3991) || !files['isFile'](_0x2f3991))
                return console['error']('[contacts|L493]', '当前文件:' + _0x2f3991 + '不存在~'), _0x4922dc;
            let _0x391771 = open(_0x2f3991, 'r', _0x33fb4f), _0xfe6427 = 0x3;
            while (_0xd25608 !== 0x0) {
                let _0x340f22 = _0x391771['readline']();
                _0xd25608--;
                if (!_0x340f22) {
                    _0xfe6427--;
                    if (_0xfe6427 > 0x0)
                        continue;
                    else {
                        console['warn']('[contacts|L507]', '请当前文件可能已读取完毕,或数据格式出错~');
                        break;
                    }
                } else
                    _0xfe6427 = 0x3;
                let _0x37ff62 = _0x340f22['split'](',');
                switch (_0x37ff62['length']) {
                case 0x3:
                    _0x4922dc['push']({
                        'name': _0x37ff62[0x2],
                        'number': _0x37ff62[0x0],
                        'city': _0x37ff62[0x1]
                    });
                    break;
                case 0x2:
                    _0x4922dc['push']({
                        'name': _0x37ff62[0x1],
                        'number': _0x37ff62[0x0],
                        'city': '未知'
                    });
                    break;
                case 0x1:
                    _0x4922dc['push']({
                        'name': _0x37ff62[0x0],
                        'number': _0x37ff62[0x0],
                        'city': '未知'
                    });
                    break;
                }
            }
            try {
                let _0x36547a = _0x391771['readlines']();
                _0x391771['close'](), sleep(0x190), _0x391771 = open(_0x2f3991, 'w', _0x33fb4f), _0x391771['writelines'](_0x36547a), _0x391771['close']();
            } catch (_0x1a558d) {
                console['error']('[contacts|L546]', _0x1a558d), _0x391771['close']();
            }
            return _0x4922dc;
        }, _0x1bf0c0['deleteContact'] = function (_0x4b46d2) {
            let _0x21c3b8;
            if (_0x4b46d2['contactId'])
                _0x21c3b8 = _0x4b46d2['contactId'];
            else {
                if (_0x4b46d2['number'])
                    _0x21c3b8 = _0x1bf0c0['queryContactId'](_0x4b46d2['number']);
                else
                    _0x4b46d2['name'] && (_0x21c3b8 = _0x1bf0c0['queryContactIdByName'](_0x4b46d2['name']));
            }
            if (!_0x21c3b8)
                return console['warn']('[contacts|L567]', '失败:\x20联系人不存在,不需要删除'), ![];
            return console['log']('[contacts|L570]', '删除联系人:\x20id\x20=\x20%s,\x20内容\x20=\x20%s', _0x21c3b8, _0x4b46d2), context['contentResolver']['delete'](ContactsContract['Data']['CONTENT_URI'], ContactsContract['Data']['RAW_CONTACT_ID'] + '\x20=\x20' + _0x21c3b8, null), context['contentResolver']['delete'](ContactsContract['RawContacts']['CONTENT_URI'], '_id\x20=\x20' + _0x21c3b8, null), console['verbose']('成功'), !![];
        }, _0x1bf0c0['insertOrUpdateContact'] = function (_0x5a0f01) {
            let _0x58a5e7;
            if (_0x5a0f01['contactId'])
                _0x58a5e7 = _0x5a0f01['contactId'];
            else {
                if (_0x5a0f01['number'])
                    _0x58a5e7 = _0x1bf0c0['queryContactId'](_0x5a0f01['number']);
                else
                    _0x5a0f01['name'] && (_0x58a5e7 = _0x1bf0c0['queryContactIdByName'](_0x5a0f01['name']));
            }
            return !_0x58a5e7 && (_0x58a5e7 = _0x1bf0c0['insertRawContact']()), console['log']('[contacts|L596]', '插入联系人:\x20id\x20=\x20%s,\x20内容\x20=\x20%s', _0x58a5e7, JSON['stringify'](_0x5a0f01)), _0x1bf0c0['insertContactData'](_0x58a5e7, ContactsContract['CommonDataKinds']['StructuredName']['CONTENT_ITEM_TYPE'], ContactsContract['CommonDataKinds']['StructuredName']['DISPLAY_NAME'], _0x5a0f01['name']), _0x1bf0c0['insertContactData'](_0x58a5e7, ContactsContract['CommonDataKinds']['StructuredPostal']['CONTENT_ITEM_TYPE'], ContactsContract['CommonDataKinds']['StructuredPostal']['CITY'], _0x5a0f01['city']), _0x1bf0c0['insertContactData'](_0x58a5e7, ContactsContract['CommonDataKinds']['Phone']['CONTENT_ITEM_TYPE'], ContactsContract['CommonDataKinds']['Phone']['NUMBER'], _0x5a0f01['number'], ContactsContract['CommonDataKinds']['Phone']['TYPE'], ContactsContract['CommonDataKinds']['Phone']['TYPE_MOBILE']), console['verbose']('成功'), _0x58a5e7;
        }, _0x1bf0c0['queryContactId'] = function (_0x4f0be1) {
            let _0x48973e, _0x26a497 = _0x1bf0c0['Global']['ContactList'];
            if (_0x26a497['length'] > 0x0) {
                for (let _0x17dced = 0x0; _0x17dced < _0x26a497['length']; _0x17dced++) {
                    let _0x47e41a = _0x26a497[_0x17dced];
                    if (_0x47e41a['number'] == _0x4f0be1) {
                        _0x48973e = _0x47e41a['contactId'];
                        break;
                    }
                }
                return console['verbose']('已通过ContactList获取到contactId'), _0x48973e;
            }
            try {
                let _0x2a4e7a = context['contentResolver']['query'](ContactsContract['Data']['CONTENT_URI'], null, ContactsContract['CommonDataKinds']['Phone']['NUMBER'] + '\x20=\x20\x27' + _0x4f0be1 + '\x27\x20AND\x20' + ContactsContract['Data']['MIMETYPE'] + '\x20=\x20\x27' + ContactsContract['CommonDataKinds']['Phone']['CONTENT_ITEM_TYPE'] + '\x27', null, null);
                _0x2a4e7a['moveToFirst']() && (_0x48973e = _0x2a4e7a['getLong'](_0x2a4e7a['getColumnIndex'](ContactsContract['Data']['RAW_CONTACT_ID']))), _0x2a4e7a['close']();
            } catch (_0x324786) {
                console['info']('[contacts|L638]', '执行queryContactId,出错:', _0x324786), _0x48973e = undefined;
            }
            return _0x48973e;
        }, _0x1bf0c0['queryContactIdByName'] = function (_0x1e2343) {
            let _0x49af57, _0x34fb13 = _0x1bf0c0['Global']['ContactList'];
            if (_0x34fb13['length'] > 0x0) {
                for (let _0x14ec4b = 0x0; _0x14ec4b < _0x34fb13['length']; _0x14ec4b++) {
                    let _0x310866 = _0x34fb13[_0x14ec4b];
                    if (_0x310866['name'] == _0x1e2343) {
                        _0x49af57 = _0x310866['contactId'];
                        break;
                    }
                }
                return console['verbose']('已通过ContactList获取到contactId'), _0x49af57;
            }
            try {
                let _0x8cf86c = context['contentResolver']['query'](ContactsContract['Data']['CONTENT_URI'], null, ContactsContract['CommonDataKinds']['Phone']['DISPLAY_NAME'] + '\x20=\x20\x27' + _0x1e2343 + '\x27\x20AND\x20' + ContactsContract['Data']['MIMETYPE'] + '\x20=\x20\x27' + ContactsContract['CommonDataKinds']['Phone']['CONTENT_ITEM_TYPE'] + '\x27', null, null);
                _0x8cf86c['moveToFirst']() && (_0x49af57 = _0x8cf86c['getLong'](_0x8cf86c['getColumnIndex'](ContactsContract['Data']['RAW_CONTACT_ID']))), _0x8cf86c['close']();
            } catch (_0x1b81c1) {
                console['info']('[contacts|L669]', '执行queryContactIdByName,出错:', _0x1b81c1), _0x49af57 = undefined;
            }
            return _0x49af57;
        }, _0x1bf0c0['insertRawContact'] = function () {
            let _0x57a945 = new ContentValues(), _0x34ddb4 = context['contentResolver']['insert'](ContactsContract['RawContacts']['CONTENT_URI'], _0x57a945), _0x579d75 = ContentUris['parseId'](_0x34ddb4);
            return _0x579d75;
        }, _0x1bf0c0['getAllContacts'] = function () {
            let _0x59bccc = [];
            if (!_0x1b9bbc)
                return _0x59bccc;
            let _0x13ac62 = context['contentResolver']['query'](ContactsContract['Contacts']['CONTENT_URI'], null, null, null, null), _0x4b4012 = 0xc8, _0x295d6a = 0x0;
            while (_0x13ac62['moveToNext']()) {
                let _0xfa5163 = {};
                _0xfa5163['name'] = _0x13ac62['getString'](_0x13ac62['getColumnIndex'](ContactsContract['Contacts']['DISPLAY_NAME']));
                let _0xe7ee96 = _0x13ac62['getString'](_0x13ac62['getColumnIndex'](ContactsContract['Contacts']['_ID']));
                _0xfa5163['contactId'] = _0xe7ee96;
                let _0x202341 = context['contentResolver']['query'](ContactsContract['CommonDataKinds']['Phone']['CONTENT_URI'], null, ContactsContract['CommonDataKinds']['Phone']['CONTACT_ID'] + '\x20=\x20' + _0xe7ee96, null, null);
                _0x202341['moveToFirst']() && (_0xfa5163['number'] = _0x202341['getString'](_0x202341['getColumnIndex'](ContactsContract['CommonDataKinds']['Phone']['NUMBER']))), _0x295d6a += 0x1, _0x295d6a > _0x4b4012 && (toastLog('更新通讯录列表中,请耐心等待~'), _0x295d6a = 0x0), _0x202341['close'](), _0x59bccc['push'](_0xfa5163);
            }
            return _0x13ac62['close'](), _0x1bf0c0['Global']['ContactList'] = _0x59bccc, _0x59bccc;
        }, _0x1bf0c0['insertContactData'] = function (_0x157ca6, _0x45b792) {
            let _0x4027ad = new ContentValues();
            const {ContactsContract: _0x413c1d} = _0x4027ad;
            put(_0x413c1d['Data']['RAW_CONTACT_ID'], new java['lang']['Long'](_0x157ca6)), put(_0x413c1d['Data']['MIMETYPE'], _0x45b792);
            for (let _0xc16b7 = 0x2; _0xc16b7 < arguments['length']; _0xc16b7 += 0x2) {
                let _0x6df5d7 = arguments[_0xc16b7], _0x4e062b = arguments[_0xc16b7 + 0x1];
                typeof _0x4e062b == 'number' ? put(_0x6df5d7, new java['lang']['Long'](_0x4e062b)) : put(_0x6df5d7, _0x4e062b);
            }
            context['contentResolver']['insert'](_0x413c1d['Data']['CONTENT_URI'], _0x4027ad);
        };
    },
    0x4: function (_0x515b5f, _0x43366b) {
        _0x515b5f['exports'] = require('./ac.js');
    },
    0x9: function (_0x2daf75, _0x5bdb36) {
        _0x2daf75['exports'] = require('./contacts_person.js');
    }
});